home *** CD-ROM | disk | FTP | other *** search
- /* ===========
- * AEAModel.hh
- * ===========
- */
-
- #pragma once
-
- #include <AppleEvents.h>
- #include <AEObjects.h>
-
- class AEATokenModel;
- class AEADescAppleEvent; // only for RespondToEvent
- class AEADesc;
-
- class AEAModel {
- public:
- AEAModel() : mTransient(false) {}
- virtual ~AEAModel() {}
-
- virtual bool IsTransient() {return mTransient;}
- virtual void SetTransience(bool inTransient) {mTransient = inTransient;}
-
- virtual void KissGoodbye() {if (mTransient) delete this;}
-
- virtual void MakeToken(AEATokenModel *&outToken);
-
- virtual DescType Type() const {return typeObjectSpecifier;}
- virtual DescType Class() const = 0;
-
- virtual void GetContainerObjSpec(AEDesc &outAEDesc) const = 0;
-
- virtual DescType PreferredKeyForm() const {return typeNull;}
- virtual void GetKeyData(DescType inKeyForm, AEDesc &outAEDesc) const;
- virtual void MakeObjSpecifier(AEDesc &outAEDesc) const;
- virtual void MakeDescriptor(AEDesc &outAEDesc) const {MakeObjSpecifier(outAEDesc);}
-
- virtual long CountElements(DescType inDesiredClass) const;
- virtual void GetElementByIndex(DescType inDesiredClass, long inIndex, AEAModel *&outObject) const;
- //virtual void GetElementByName(DescType inDesiredClass, void *inName, long inSize, CAEOMDatum *&outObject) const;
- virtual void GetElementByName(DescType inDesiredClass, const AEADesc &inName, AEAModel *&outObject) const;
- virtual void GetElementByID(DescType inDesiredClass, long inID, AEAModel *&outObject) const;
- virtual void GetProperty(DescType inDesiredClass, DescType inPropertyID, AEAModel *&outObject) const;
- virtual AEAModel *GetProperty(DescType inDesiredClass, DescType inPropertyID) const;
-
- virtual void MakeElement(DescType inNewClass /*, at*/ /*, with properties*/);
-
- // I'm getting rid of this as soon as possible.
- virtual void RespondToEvent(const AEADescAppleEvent *inAppleEvent, AEADescAppleEvent *outReply);
-
- protected:
- bool mTransient;
- };
-